/**
 * 
 */
package com.ai.dmc.utils.entity.exportformExhibition;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;



/**
 * Title： 报表基本信息
 * Description： 如reportId,报表名称,额外的信息
 * Copyright：Copyright (c) 2009
 * Company：亚信科技（中国）有限公司
 * @author liuyt, 2015年10月14日
 * @version 1.0
 */
public class ConfigureBean implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /*
     * 报表对应id
     */
    private String reportId;  
    
    /*
     * 报表数据刷新周期
     */
    private String refreshData;   
    
    /*
     * 报表描述
     */
    private String reportComment;
    
    /*
     * 报表时间周期
     */
    private String timeType;
    
    /*
     * 报表时间周期
     */
    private String timeTypeName;
    
    /*
     * 报表创建人
     */
    private String creatUserName;
    
    /*
     * 报表路径
     */
    private String rtpFolderPath;
    
    /*
     * 需求提出人
     */
    private String demandUserName;
    
    /*
     * 报表访问量
     */
    private String totalVisitTimes;
    
    /*
     * 报表关注量
     */
    private String totalAttentionTimes;
    
    /*
     * 报表热度
     */
    private String visitLevel;
    
    /*
     * 报表版本有效期
     */
    private String versionValidity;
    
    /*
     * 报表板本号，与reportId联合确定一张报表
     */
    private String version;
    
    /*
     * 报表发布状态
     */
    private String publishState;
    
    /*
     * 报表维度
     */
    private String reportDimension;
    
    /*
     * 报表指标
     */
    private String reportIndex;
    
    /*
     * 报表数据表数据时间字段名
     */
    private String dataTimeName;
    
    /*
     * 查询数据对应的数据库
     */
    private String databaseType = "";
    
    /*
     * 报表对应的标题
     */
    private String title;
    
    /*
     * 报表对应的数据库事实表名：包括别名 如：dwapp.fact_4g_arrive_user_anal_mon A
     */
    private String table;
    
    /*
     * 最大日期
     */
    private String maxDate;
    
    /*
     * 最大日期2
     */
    private String maxDate2;   
    
    /*
     * 最小日期
     */
    private String minDate;
    
    /*
     * 最小日期2
     */
    private String minDate2;  
    
    /*
     * 排序字符串
     */
    private String orderBy;
    
    /*
     * 关键字   多个关键字 中间用分号隔开
     */
    private String keyWord;
    
    /*
     * 主表查询额外添加的where条件
     */
    private String where;
    
    /*
     * 是否需要合计, 默认 false，不需要合计
     */
    private Boolean needSum;
    
    /*
     * 是否分页， 默认 false，不需要分页
     */
    private Boolean needPage;
    
    /*
     * 是否分组， 默认 false，不需要分组
     */
    private Boolean needGroup;
    
    /*
     * 报表结构信息
     */
    private JSONObject structInfo;

    /***********************************************************
     * 扩展字段 *
     ***********************************************************/
    
    /*
     * item 集合
     */
    private Map<String,ItemBean> items;
    
    /*
     * 列集合
     */
    private List<String> columns;
    
    /*
     * 条件集合
     */
    private List<String> conditions;
    
    /*
     * 条件数据集合
     */
    private Map<String, List<ComboboxBean>> combobox;

    /*
     * 数据列形成的树形结构
     */
    private List<String> columnTree;
    
    /*
     * 报表业务口径
     */
    private List<Map<String, String>>  reportCaliber;
    
    /*
     * 报表预警
     */
    private List<Map<String, String>> warnLevels;
    private List<Map<String, String>> warnFields;
    private List<Map<String, String>> dimComs;
    
    /***********************************************************
     * 扩展方法 *
     ***********************************************************/
    
    /**
     * @return the reportId
     */
    public String getReportId() {
        return reportId;
    }

    
    /**
     * @param reportId the reportId to set
     */
    public void setReportId(String reportId) {
        this.reportId = reportId;
    }

    
    /**
     * @return the version
     */
    public String getVersion() {
        return version;
    }

    
    /**
     * @param version the version to set
     */
    public void setVersion(String version) {
        this.version = version;
    }

    
    public String getPublishState() {
		return publishState;
	}


	public void setPublishState(String publishState) {
		this.publishState = publishState;
	}


	/**
     * @return the title
     */
    public String getTitle() {
        return title;
    }
    
    /**
     * @param title the title to set
     */
    public void setTitle(String title) {
        this.title = title;
    }
    
    /**
     * @return the table
     */
    public String getTable() {
        return table;
    }
    
    /**
     * @param table the table to set
     */
    public void setTable(String table) {
        this.table = table;
    }

    public String getDatabaseType() {
		return databaseType;
	}


	public void setDatabaseType(String databaseType) {
		this.databaseType = databaseType;
	}


	/**
     * @return the orderBy
     */
    public String getOrderBy() {
        return orderBy;
    }
    
    /**
     * @param orderBy the orderBy to set
     */
    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }
    
    /**
     * @return the where
     */
    public String getWhere() {
        return where;
    }
    
    /**
     * @param where the where to set
     */
    public void setWhere(String where) {
        this.where = where;
    }
    
    /**
     * @return the needSum
     */
    public Boolean getNeedSum() {
        return needSum;
    }

    /**
     * @param needSum the needSum to set
     */
    public void setNeedSum(Boolean needSum) {
        this.needSum = needSum;
    }
    
    public String getVisitLevel() {
		return visitLevel;
	}


	public void setVisitLevel(String visitLevel) {
		this.visitLevel = visitLevel;
	}


	/**
     * @return the needPage
     */
    public Boolean getNeedPage() {
        return needPage;
    }

    /**
     * @param needPage the needPage to set
     */
    public void setNeedPage(Boolean needPage) {
        this.needPage = needPage;
    }

    /**
     * @return the needGroup
     */
    public Boolean getNeedGroup() {
        return needGroup;
    }
    
    /**
     * @param needGroup the needGroup to set
     */
    public void setNeedGroup(Boolean needGroup) {
        this.needGroup = needGroup;
    }
    
    /**
     * @return the items
     */
    public Map<String, ItemBean> getItems() {
        return items;
    }

    /**
     * @param items the items to set
     */
    public void setItems(Map<String, ItemBean> items) {
        this.items = items;
    }

    /**
     * @return the columns
     */
    public List<String> getColumns() {
        return columns;
    }

    public String getMaxDate() {
		return maxDate;
	}

	public void setMaxDate(String maxDate) {
		this.maxDate = maxDate;
	}

	public String getMinDate() {
		return minDate;
	}

	public void setMinDate(String minDate) {
		this.minDate = minDate;
	}

	public String getMaxDate2() {
		return maxDate2;
	}

	public void setMaxDate2(String maxDate2) {
		this.maxDate2 = maxDate2;
	}

	public String getMinDate2() {
		return minDate2;
	}

	public void setMinDate2(String minDate2) {
		this.minDate2 = minDate2;
	}

	/**
     * @param columns the columns to set
     */
    public void setColumns(List<String> columns) {
        this.columns = columns;
    }

    public List<String> getConditions() {
        return conditions;
    }

    public void setConditions(List<String> conditions) {
        this.conditions = conditions;
    }

    /**
     * @return the columnTree
     */
    public List<String> getColumnTree() {
        return columnTree;
    }
    
    /**
     * @param columnTree the columnTree to set
     */
    public void setColumnTree(List<String> columnTree) {
        this.columnTree = columnTree;
    }
    
    /**
     * @return the reportComment
     */
    public String getReportComment() {
        return reportComment;
    }
    
    /**
     * @param reportComment the reportComment to set
     */
    public void setReportComment(String reportComment) {
        this.reportComment = reportComment;
    }

    /**
     * @return the totalVisitTimes
     */
    public String getTotalVisitTimes() {
        return totalVisitTimes;
    }
    
    /**
     * @param totalVisitTimes the totalVisitTimes to set
     */
    public void setTotalVisitTimes(String totalVisitTimes) {
        this.totalVisitTimes = totalVisitTimes;
    }
    
    /**
     * @return the versionValidity
     */
    public String getVersionValidity() {
        return versionValidity;
    }
    
    /**
     * @param versionValidity the versionValidity to set
     */
    public void setVersionValidity(String versionValidity) {
        this.versionValidity = versionValidity;
    }
    
    /**
     * @return the creatUserName
     */
    public String getCreatUserName() {
        return creatUserName;
    }

    /**
     * @param creatUserName the creatUserName to set
     */
    public void setCreatUserName(String creatUserName) {
        this.creatUserName = creatUserName;
    }
    
    /**
     * @return the keyWord
     */
    public String getKeyWord() {
        return keyWord;
    }

    /**
     * @param keyWord the keyWord to set
     */
    public void setKeyWord(String keyWord) {
        this.keyWord = keyWord;
    }

    /**
     * @return the timeType
     */
    public String getTimeType() {
        return timeType;
    }
    
    /**
     * @param timeType the timeType to set
     */
    public void setTimeType(String timeType) {
        this.timeType = timeType;
    }
    
    public String getTimeTypeName() {
		return timeTypeName;
	}


	public void setTimeTypeName(String timeTypeName) {
		this.timeTypeName = timeTypeName;
	}


	/**
     * @return the refreshData
     */
    public String getRefreshData() {
        return refreshData;
    }
    
    /**
     * @param refreshData the refreshData to set
     */
    public void setRefreshData(String refreshData) {
        this.refreshData = refreshData;
    }

    /**
     * @return the combobox
     */
    public Map<String, List<ComboboxBean>> getCombobox() {
        return combobox;
    }
    
    /**
     * @return the structInfo
     */
    public JSONObject getStructInfo() {
        return structInfo;
    }
    
    /**
     * @param structInfo the structInfo to set
     */
    public void setStructInfo(JSONObject structInfo) {
        this.structInfo = structInfo;
    }

    /**
     * @param combobox the combobox to set
     */
    public void setCombobox(Map<String, List<ComboboxBean>> combobox) {
        this.combobox = combobox;
    }

    /**
     * @return the dataTimeName
     */
    public String getDataTimeName() {
        return dataTimeName;
    }
    
    /**
     * @param dataTimeName the dataTimeName to set
     */
    public void setDataTimeName(String dataTimeName) {
        this.dataTimeName = dataTimeName;
    }

    /**
     * @return the reportCaliber
     */
    public List<Map<String, String>> getReportCaliber() {
        return reportCaliber;
    }

    /**
     * @param reportCaliber the reportCaliber to set
     */
    public void setReportCaliber(List<Map<String, String>> reportCaliber) {
        this.reportCaliber = reportCaliber;
    }

    public List<Map<String, String>> getWarnLevels() {
		return warnLevels;
	}

	public void setWarnLevels(List<Map<String, String>> warnLevels) {
		this.warnLevels = warnLevels;
	}

	public List<Map<String, String>> getWarnFields() {
		return warnFields;
	}

	public void setWarnFields(List<Map<String, String>> warnFields) {
		this.warnFields = warnFields;
	}

	public List<Map<String, String>> getDimComs() {
		return dimComs;
	}

	public void setDimComs(List<Map<String, String>> dimComs) {
		this.dimComs = dimComs;
	}


	public String getRtpFolderPath() {
		return rtpFolderPath;
	}


	public void setRtpFolderPath(String rtpFolderPath) {
		this.rtpFolderPath = rtpFolderPath;
	}


	public String getDemandUserName() {
		return demandUserName;
	}


	public void setDemandUserName(String demandUserName) {
		this.demandUserName = demandUserName;
	}


	public String getTotalAttentionTimes() {
		return totalAttentionTimes;
	}


	public void setTotalAttentionTimes(String totalAttentionTimes) {
		this.totalAttentionTimes = totalAttentionTimes;
	}


	public String getReportDimension() {
		return reportDimension;
	}


	public void setReportDimension(String reportDimension) {
		this.reportDimension = reportDimension;
	}


	public String getReportIndex() {
		return reportIndex;
	}


	public void setReportIndex(String reportIndex) {
		this.reportIndex = reportIndex;
	}

}